import { LLMConfig, ExportedConfig, ImportResult } from '../../types/index';

/**
 * 导入导出服务接口
 */
export interface IImportExportService {
  /**
   * 导出当前配置
   */
  exportConfig(): Promise<void>;

  /**
   * 从文件导入配置
   * @param file 配置文件
   * @param mergeMode 是否合并模式（true=合并，false=覆盖）
   */
  importConfig(file: File, mergeMode?: boolean): Promise<ImportResult>;

  /**
   * 验证配置文件格式
   * @param content 文件内容
   */
  validateConfigFile(content: string): {
    isValid: boolean;
    error?: string;
    data?: ExportedConfig;
  };

  /**
   * 合并配置
   * @param existing 现有配置
   * @param imported 导入配置
   */
  mergeConfigs(existing: LLMConfig, imported: LLMConfig): LLMConfig;

  /**
   * 生成配置文件内容
   * @param config 配置对象
   */
  generateExportData(config: LLMConfig): ExportedConfig;
}